package com.bauer.framework.autumn.factory;


import com.bauer.framework.autumn.beandefination.BeanDefination;

import java.lang.annotation.Annotation;
import java.util.List;

/**
 * @Author ：rui.wei
 * @Date ：Created in 14:19 2018/7/20
 * @Description：
 */
public interface BeanFactory {

    Object getBean(String name);

    void loadBeanDefination(ClassLoader classLoader,List<String> path);

    void initAllBean();

    List<String> getBeanNames();

    BeanDefination getBeanDefination(String beanName);

    <A extends Annotation > A findAnnotationOnBean(Class beanClasss,Class<A> annotationType);
}
